🐳 docker | July 14, 2021
컨테이너는 하나의 Application 프로세스
컨테이너가 여러 개가 겪리된 상태로 따로 동작하더라도, 리눅스 커널은 단 하나만 이용하는 것이며 자원 또한 하나의 호스트 OS(리눅스 - 우분투 등)의 자원을 나눠서 사용한다.
실제로 작동하는 상태가 아닌, 애플리케이션을 설계해 놓고, freezing 한 상태라고 볼 수 있다.
컨테이너 이미지는 1개 이상의 레이어로 구성될 수 있으며, 하나의 Application이 잘 실행될 수 있도록 모아져 있는 이미지들의 조합이 컨테이너 이미지가 된다.
base image Layer
: 환경을 구축할 때 사용 하는 것이며, 여러 개를 쌓기 때문에 계층형이라 부른다.
FROM
명령어 부분을 담당source image Layer
: 구축된 환경에서 애플리케이션을 실행하기 위한 실제 소스코드도커 허브나 회사 허브에서 도커 이미지를 받아온다.
실습 전 아래 명령어를 입력하여 권한 오류를 수정
(기본적으로 설치 시 root 계정만 권한을 가지는 것을 유저에게 할당해주는 것)
sudo chmod 666 /var/run/docker.sock
또는sudo chown root:docker /var/run/docker.sock
도커 허브에서 이미지 검색
$ docker search <찾을 이미지 이름>
컨테이너 이미지 레이어가 저장되는 곳
$ cd /var/lib/docker/overlay2 && ls -l
$ docker pull nginx
$ /var/lib/docker/overlay2: ls -l # 검색해보면 nginx 이미지 구성에 필요한 레이어들을 확인 가능
컨테이너 실행 및 실행중인 컨테이너 확인
--name
: 컨테이너 이름-d
: 데몬으로 실행-p
: 포트포워딩nginx
: nginx 이미지 사용$ docker run --name web -d -p 80:80 nginx
$ docker ps # - 실행중인 컨테이너 목록 확인
nginx 서비스를 이용해보기
curl
명령어를 통해 80 포트로 진입$ curl localhost:80 # nginx 초기 설정 화면을 볼 수 있음